﻿package com.zouloux.core.data.remote 
{
	import com.zouloux.core.data.IDataCollection;
	import com.zouloux.core.data.parse.IDataParser;
	import flash.events.Event;
	import flash.events.IEventDispatcher;
	import flash.net.Responder;
	
	[Event(name="call",			type="com.zouloux.core.events.RemoteEvent")]
	[Event(name="error",		type="com.zouloux.core.events.RemoteEvent")]
	[Event(name="response",		type="com.zouloux.core.events.RemoteEvent")]
	
	/**
	 * ...
	 * @author ZoulouX
	 */
	public interface IRemote extends IEventDispatcher
	{
		function get parser():IDataParser;
		function set parser(pvalue:IDataParser):void;
		
		function get autoParse():Boolean;
		function set autoParse(pvalue:Boolean):void;
		
		function get strictParse():Boolean;
		function set strictParse(pvalue:Boolean):void;
		
		function get lastResults():*;
		
		function get lastData():*;
		
		function call (pServiceName:String, pOptions:Object = null, ... rest):void;
	}
}